package cn.iocoder.yudao.module.lowcode.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * Magic API 配置属性类
 * 
 * @author 芋道源码
 */
@Data
@Validated
@ConfigurationProperties(prefix = "yudao.lowcode.magic-api")
public class MagicApiProperties {

    /**
     * 是否启用 Magic API
     */
    @NotNull(message = "Magic API 启用状态不能为空")
    private Boolean enabled = true;

    /**
     * Magic API Web 管理界面路径
     */
    @NotBlank(message = "Magic API Web 路径不能为空")
    private String webPath = "/magic/web";

    /**
     * Magic API 资源路径前缀
     */
    @NotBlank(message = "Magic API 资源路径不能为空")
    private String resourcePath = "/magic/";

    /**
     * 是否启用安全验证
     */
    @NotNull(message = "Magic API 安全验证状态不能为空")
    private Boolean securityEnabled = true;

    /**
     * Web 界面认证用户名
     */
    private String webUsername = "admin";

    /**
     * Web 界面认证密码
     */
    private String webPassword = "admin123";

    /**
     * 是否启用接口调用日志
     */
    @NotNull(message = "Magic API 日志状态不能为空")
    private Boolean logEnabled = true;

    /**
     * 是否启用集群模式
     */
    @NotNull(message = "Magic API 集群模式状态不能为空")
    private Boolean clusterEnabled = true;
}